class CommandUsage {

	public CommandUsage() {
	}

	public static String getUsageInfo(String cmd) throws CommandFormatException {
		switch (cmd) {
			case "?insert": {
				return "insert <genome index> <position> [<block1> <block2> ...] \n\n\tInsert <block1>, <block2>, ... to genome <genome index> into position <position>\n";
			}
			case "?delete": {
				return "delete <genome index> <start index> <finish index> \n\n\tDelete blocks in genome <genome index> from <start index> to <finish index>\n";
			}
			case "?reverse": {
				return "reverse <genome index> <start index> <finish index> \n\n\t Reverse blocks in genome <genome index> from <start index> to <finish index>\n";
			}
			case "?transposition": {
				return "transposition <genome index> <start index> <finish index> <insert position> \n\n\t Move blocks in genome <genome index> from <start index> to <finish index> to position <insert position>\n";
			}
			case "?undo": {
				return "undo \n\n\t Undo the last command\n";
			}
			case "?redo": {
				return "redo \n\n\t Redo the last undone command\n";
			}
			case "?save": {
				return "save <filename> \n\n\tSave current genome permutations to file <filename>\n";
			}
			case "?save_scenario": {
				return "save_scenario <filename> \n\n\tSave history of performed commands to file <filename>\n";
			}
			case "?help": {
				return "help \n\n\tList all available interactive commands\n";
			}
			case "?exit":{
				return "exit \n\n\tExit the program\n";
			}
			default:
				throw new CommandFormatException("unknown command name \"" + cmd + "\"");
		}
	}
}
